package com.nkzy.domain.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//
//import lombok.AllArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//
//@Data
//@AllArgsConstructor
//@NoArgsConstructor
//统一返回结果类型类：类中有属性、方法
@Data
//全参构造
@AllArgsConstructor
@NoArgsConstructor
public class Result {
//    三个属性：状态码 提示信息 数据，都使用private表示对属性私有化，封装性
// 面向对象编程，封装性、继承性、多态性
//    构造方法得作用：创建对象
//    构造方法：无参构造、有参构造，默认无参构造，
//    无参构造方法，有参构造方法称为方法的重载
//    方法重载：同一个类中，方法名相同，参数列表不同，或者参数类型不同
//    类是抽象的，是对现实世界的抽象，比如：用户，订单，商品
//    用类来创建出的对象，称为对象，对象是具体的
    private Integer code;//状态码,此处可以使用int类型、也可以使用Integer类型
    private String msg;//提示信息
    private Object data;//数据
    //Java数据类型:基本数据类型（简单数据类型）
    //            引用数据类型（复杂数据类型）
//    基本数据类型：int、double、boolean、char、long、short、byte、float
//    引用数据类型: String、数组、类、接口（特殊的类）
//    引用类型的数据，一般都提供了一些方法，便于我们进行操作。手机
//    在定义类的属性时尽量使用引用数据类型->提供了很多方法，后续操作时直接使用
//    不用基本数据类型
//为了后续操作翻方便，在类中我们可以编写几个静态方法，方便使用
//    static静态方法：不需要创建对象，直接使用类名.方法名()调用
//   （1） 这个成功的方法一般用于保存、修改、删除等操作
    public static Result success(){
        return new Result(1,"操作成功",null);
    }
//    静态方法：返回成功，并携带数据，用于查询
    public static Result success(Object data){
        return new Result(1,"操作成功",data);
    }
//    静态方法：返回失败，并携带失败信息
    public static Result error(String msg){
        return new Result(0,msg,null);
    }




//    @Override：重写父类方法，Java所有类都有Object父类，所有类都继承了Object类
    //重写toString()方法，打印对象时，打印对象的属性值，而不是内存地址
//    @Override
//    public String toString() {
//        return "Result{" +
//                "code='" + code + '\'' +
//                ", msg='" + msg + '\'' +
//                ", data=" + data +
//                '}';
//    }

}

